home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / haeberli / include / showcaseui.h < prev    next >
C/C++ Source or Header  |  1994-08-01  |  22KB  |  696 lines

  1. /*
  2.  * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. #ifndef __SHOWCASEUI_H__
  18. #define __SHOWCASEUI_H__
  19.  
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif
  23.  
  24. /**************************************************************************
  25.  *                                                                        *
  26.  *       Copyright (C) 1990, Silicon Graphics, Inc.                       *
  27.  *                                                                        *
  28.  *  These coded instructions, statements, and computer programs  contain  *
  29.  *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
  30.  *  are protected by Federal copyright law.  They  may  not be disclosed  *
  31.  *  to  third  parties  or copied or duplicated in any form, in whole or  *
  32.  *  in part, without the prior written consent of Silicon Graphics, Inc.  *
  33.  *                                                                        *
  34.  **************************************************************************/
  35.  
  36. #define UILEFT          100
  37. #define UIRIGHT         101
  38. #define UILRCENTER      102
  39. #define UITBCENTER      103
  40. #define UITOP           104
  41. #define UIBOTTOM        105
  42.  
  43. #define UIBUTTONUP    0
  44. #define UIBUTTONDOWN    1
  45. #define UIBUTTONCLICK    2
  46. #define UIBUTTONDOUBLE    3
  47.  
  48. #define P_UISHADOW      343
  49. #define P_UILINESHADOW     344
  50.  
  51. #define MENUBARHEIGHT   26
  52. #define SHADOWOFFSET    6
  53. #define MENUXGAP        9
  54.  
  55. #define TEXTHEIGHT      20
  56. #define DEFAULTFONT    0
  57.  
  58. #define CHECKBUTTON     1
  59. #define PALETTEBUTTON   2
  60. #define PUSHBUTTON      3
  61. #define RADIOBUTTON     4
  62. #define TOGGLEBUTTON    5
  63. #define TINYTOGGLE      6
  64. #define ICONBUTTON      7
  65. #define ICON            8
  66. #define INDICATOR       9
  67. #define BED             10
  68. #define GENERICBUTTON   11
  69. #define PTRBUTTON       12
  70. #define CUSTOMBUTTON    13
  71. #define TINYRADIO       14
  72. #define MENUOPTIONBUTTON 15
  73. #define VSLIDER         16
  74. #define HSLIDER         17
  75. #define VALUATOR    18
  76. #define TEXTBOX        19
  77. #define TEXTLIST    20
  78. #define MENUBAR        21
  79. #define PULLDOWNMENU    22
  80. #define POPUPMENU    23
  81. #define TEXTLABEL    24
  82. #define BOLDTEXTLABEL    25
  83. #define MENUITEM    26
  84.  
  85. #define TROUGH          3
  86. #define THUMB           2
  87. #define SCROLLDOWN      -1
  88. #define SCROLLUP        1
  89. #define SLIDERWIDTH     20
  90. #define ARROWHEIGHT     20
  91. #define MINSHALF        13
  92.  
  93. /* Buttons */
  94.  
  95. #define BUTSTRLEN       200
  96. #define BUTHEIGHT       28
  97. #define BUTWIDTH        75
  98. #define TINYTOGGLEHEIGHT 16
  99. #define TINYTOGGLEWIDTH 16
  100. #define TINYRADIOHEIGHT 16
  101. #define TINYRADIOWIDTH  16
  102. #define PALETTEHEIGHT   35
  103. #define PALETTEWIDTH    40
  104. #define ICONHEIGHT      32
  105. #define ICONWIDTH       32
  106. #define CHECKHEIGHT     20
  107. #define CHECKWIDTH      20
  108. #define RADIOHEIGHT     24
  109. #define RADIOWIDTH      24
  110. #define INDICATORHEIGHT 28
  111. #define INDICATORWIDTH  10
  112. #define LABELFONTHEIGHT 11
  113. #define MENUOPTIONHEIGHT 26
  114.  
  115. #define BUTTONICONFONT  5600
  116. #define BUTTONFONT1     5601
  117. #define BUTTONFONT2     5602
  118. #define BUTTONFONT3     5603
  119.  
  120. typedef struct AButton {
  121.     long xmin,xmax,ymin,ymax;
  122.     long number;        /* the button number--used internally */
  123.     char str[BUTSTRLEN+1];      /* the label on or next to the button */
  124.     short active;               /* the button is on (menu option label #) */
  125.     short enable;               /* the button is able to be pressed */
  126.     short locate;               /* the button is locate highlighted */
  127.     short select;               /* the button is pressed */
  128.     short invisible;        /* the button is not visible */
  129.     short type;                 /* checkbutton, indicator, etc. */
  130.     short thedefault;           /* the button is the default button */
  131.     short sticky;               /* stays pressed until an unpress is called */
  132.     void  (*butcolor)();        /* color of the text or icon on the button */
  133.     void  (*drawbutton)();      /* color of the text or icon on the button */
  134.     struct AButton **links;    /* used mainly for radio buttons to connect */
  135.     long numlinks;        /* the number of button links */
  136. } Button;
  137.  
  138. Button *newbut(long, long, long, long);
  139. Button *newcheckbut(long, long);
  140. Button *newpushbut(long, long);
  141. Button *newtogglebut(long, long, long);
  142. Button *newradiobut(long, long);
  143. Button *newindicator(long, long);
  144. Button *newtinyradio(long, long);
  145. Button *newtinytoggle(long, long);
  146. Button *newpalettebut(long, long);
  147. Button *newiconbut(long, long);
  148. Button *newptrbut(long, long);
  149. Button *newicon(long, long);
  150. Button *newcustombut(long, long, long, long, void (*drawbutton)());
  151. Button *newbed(long, long, long, long);
  152. Button *handlebutchar(long);
  153.  
  154. void    drawcheckbut(Button *b);
  155. void    drawindicatorbut(Button *b);
  156. void    drawpushbut(Button *b);
  157. void    drawbed(Button *b);
  158. void    drawtogglebut(Button *b);
  159. void    drawradiobut(Button *b);
  160. void    drawindicator(Button *b);
  161. void    drawtinyradio(Button *b);
  162. void    drawtinytoggle(Button *b);
  163. void    drawpalettebut(Button *b);
  164. void    drawiconbut(Button *b);
  165. void    drawicon(Button *b);
  166. void    drawptrbut(Button *b);
  167. void    drawcustombut(Button *b);
  168.  
  169. void    freebut(Button *);
  170. void    activatebut(Button *);
  171. void    deactivatebut(Button *);
  172. void    lockbut(Button *);
  173. void    flipactive(Button *);
  174. void    highlightbut(Button *);
  175. void    unhighlightbut(Button *);
  176. void    defaultbut(Button *);
  177. void    undefaultbut(Button *);
  178. void    setcolorbut(Button *, void (*butcolor)());
  179. void    linkbuttons(Button *, Button *);
  180. void    unlinkbutton(Button *);
  181. void    disablebut(Button *);
  182. void    enablebut(Button *);
  183. void    selectbut(Button *);
  184. void    unselectbut(Button *);
  185. void    makevisiblebut(Button *);
  186. void    makeinvisiblebut(Button *);
  187. void    stickbut(Button *);
  188. void    unstickbut(Button *);
  189. void    loadbut(Button *, char *);
  190. void    unpressbut(Button *);
  191. void    initbut();
  192. void    initiconbut();
  193. void    drawbut(Button *);
  194. void    drawbutnow(Button *);
  195. void    drawborder(Button *);
  196. void    drawaborder(long, long, long, long);
  197. void    positionbut(Button *, short, long);
  198. void    drawlabel(char *, long, long);
  199. void    drawboldlabel(char *, long, long);
  200. void    clearlabel(char *, long, long);
  201. void    drawiconlabel(Button *);
  202. void    unpresslinkbuts(Button *);
  203. void    UIdrawbuttons();
  204. void    UIlocatebuttons();
  205.  
  206. short    gethighlightbut(Button *);
  207. short    getdefaultbut(Button *);
  208. short    locatebut(Button *, long, long);
  209. short    valuebut(Button *);
  210. short    getenablebut(Button *);
  211. short    getselectbut(Button *);
  212. short    getvisiblebut(Button *);
  213. short    getstickbut(Button *);
  214. short    inbut(Button *, long, long);
  215. short    pressbut(Button *, long, long);
  216. short    selectedpressbut(Button *, long, long, long);
  217.  
  218. /* Horizontal Sliders */
  219.  
  220. typedef struct {
  221.     long        xmin, ymin, xmax, ymax;
  222.     long        scenter;        /* the center of the thumb */
  223.     long    shalf;            /* half of the thumb length */
  224.     long    oldpos;            /* old scenter    */
  225.     long    arrowdelta;        /* arrow delta    */
  226.     short       locate;         /* locate highlight */
  227.     short    select;            /* selected or not */
  228.     short     invisible;        /* the slider is not visible */
  229.     short       enable;            /* the slider is enabled */
  230.     short    thumb;            /* whether the thumb should show */
  231. } Slider;
  232.  
  233. typedef    Slider HSlider;
  234.  
  235. HSlider    *newhs(long, long, long, long, long);
  236.  
  237. void     movehs(HSlider *, long, long, long);
  238. void    setarrowdeltahs(HSlider *, long);
  239. void    freehs(HSlider *);
  240. void    disablehs(HSlider *);
  241. void    enablehs(HSlider *);
  242. void    highlighths(HSlider *, short);
  243. void    unhighlighths(HSlider *);
  244. void    selecths(HSlider *, short);
  245. void    unselecths(HSlider *);
  246. void    makevisiblehs(HSlider *);
  247. void    makeinvisiblehs(HSlider *);
  248. void    presshsarrow(HSlider *, short);
  249. void    sethshalf(HSlider *, long);
  250. void    sethscenter(HSlider *, long);
  251. void    sethsval(HSlider *, float);
  252. void    movehsval(HSlider *, float);
  253. void    reseths(HSlider *);
  254. void    drawhs(HSlider *);
  255. void    drawhsnow(HSlider *);
  256. void    drawhsarrows(HSlider *);
  257.  
  258. short     locatehs(HSlider *, long, long);
  259. short     getenablehs(HSlider *);
  260. short     gethighlighths(HSlider *);
  261. short     getselecths(HSlider *);
  262. short     getenablehs(HSlider *);
  263. short    getvisiblehs(HSlider *);
  264. short     inhs(HSlider *, long, long);
  265. short     handlehs(HSlider *, long, long);
  266.  
  267. short     selectedhs(HSlider *, long, long, long, long *, void (*adjust)());
  268.  
  269. long     gethstrough(HSlider *);
  270.  
  271. float     gethsval(HSlider *);
  272.  
  273. /* Menu Stuff */
  274.  
  275. typedef int (*PFI)();
  276.  
  277. typedef struct MenuItem {
  278.     struct MenuItem     *next;          /* next entry in menu           */
  279.     PFI                 func;           /* executed by entry chosen %f  */
  280.     PFI                 itemfunc;
  281.     PFI                 draw;           /* custom drawing on entry %d   */
  282.     struct Menu         *menu;          /* menu for rollover menu %m    */
  283.     char                *text;          /* text in entry                */
  284.     short               width;          /* required width for this entry*/
  285.     short               yoffset;        /* offset from pd->yorg         */
  286.     short               select;         /* selected or not              */
  287.     short               no;             /* number of entry              */
  288.     long                retno;          /* return value %x              */
  289.     short               underline;      /* separator under this entry %l*/
  290.     short               active;         /* check mark or not            */
  291.     short               enable;         /* able to be picked            */
  292.     char                *altkey;        /* alt key equivalent %a        */
  293. } MenuItem;
  294.  
  295. typedef struct Menu {
  296.     struct MenuItem     *entries;       /* menu entries on menu         */
  297.     struct Menu         *submenu;
  298.     PFI                 func;           /* exec. by any choice on pd %F */
  299.     short               nentries;       /* number of menu entries on pd */
  300.     short               slide;          /* any entries have a rollover? */
  301.     short               active;         /* any entries have a check mark*/
  302.     short               width;          /* max. width of all entries    */
  303.     short               height;         /* height of menu               */
  304.     char                *title;         /* title on menu            */
  305.     short               twidth;         /* pixel width of title         */
  306.     short               xorg;           /* screen coordinates of right  */
  307.     short               yorg;           /* screen coordinates of top    */
  308.     short               txorg;          /* screen coords. of title xorg */
  309.     short               orglocked;
  310.     short               enable;         /* able to be picked            */
  311. } Menu;
  312.  
  313. Menu    *newmenu(char *);
  314.  
  315. void    freemenu(register Menu *);
  316. void    initmenu();
  317. void    loadmenu();
  318. void    deactivatemenuentry(Menu *, char *);
  319. void    activatemenuentry(Menu *, char *);
  320. void    disablemenuentry(Menu *, char *);
  321. void    enablemenuentry(Menu *, char *);
  322. void    disablemenu(Menu *);
  323. void    enablemenu(Menu *);
  324. void    changemenutitle(Menu *, char *);
  325. void    addtomenu(Menu *, MenuItem *);
  326. void    removefrommenu(Menu *, MenuItem *);
  327. void    removeallmi(Menu *);
  328.  
  329. char    *makeloadmenustring();
  330.  
  331. short   getenablemenu(Menu *);
  332. short   changemenu(Menu *, char *, char *);
  333. short   valuemenuentry(Menu *, char *);
  334.  
  335. long    domenu(register Menu *, long);
  336.  
  337. MenuItem        *getmenuentry(Menu *, char *);
  338.  
  339.  
  340. /* Menu Option Buttons */
  341.  
  342. typedef struct {
  343.     long xmin, xmax, ymin, ymax;
  344.     struct MenuItem *index;     /* index into pd->entries (displayed text) */
  345.     short enable;               /* able to be pressed */
  346.     short locate;               /* locate highlighted */
  347.     short select;               /* is pressed */
  348.     struct Menu *menu;            /* pulldown menu */
  349. } MenuOption;
  350.  
  351. MenuOption   *newmenuoption(long, long);
  352.  
  353. void    freemenuoption(MenuOption *);
  354. void    highlightmenuoption(MenuOption *);
  355. void    unhighlightmenuoption(MenuOption *);
  356. void    disablemenuoption(MenuOption *);
  357. void    enablemenuoption(MenuOption *);
  358. void    selectmenuoption(MenuOption *);
  359. void    unselectmenuoption(MenuOption *);
  360. void    positionmenuoption(MenuOption *, short, long);
  361. void    loadmenuoption();
  362. void    unpressmenuoption(MenuOption *);
  363. void    initmenuoption();
  364. void    drawmenuoption(MenuOption *);
  365. void    drawmenuoptionnow(MenuOption *);
  366. void    addtomenuoption(MenuOption *, char *);
  367.  
  368. char     *getindexmenuoption(MenuOption *);
  369.  
  370. short    gethighlightmenuoption(MenuOption *);
  371. short    locatemenuoption(MenuOption *, long, long);
  372. short    getenablemenuoption(MenuOption *);
  373. short    getselectmenuoption(MenuOption *);
  374. short    inmenuoption(MenuOption *, long, long);
  375. short    pressmenuoption(MenuOption *);
  376. short    selectedmenuoption(MenuOption *, long, long, long);
  377.  
  378. long    domenuoption(register MenuOption *);
  379.  
  380. /* Pop-up menus */
  381.  
  382. typedef    Menu PopUp;
  383.  
  384. PopUp   *newpopup(char *);
  385.  
  386. void    freepopup(PopUp *);
  387. void    disablepopup(PopUp *);
  388. void    enablepopup(PopUp *);
  389. void    loadpopup();
  390. void    addtopopup(PopUp *, char *);
  391. void    initpu();
  392.  
  393. short    getenablepopup(PopUp *);
  394. short    selectedpopup(PopUp *, long, long, long);
  395. short    presspopup(PopUp *);
  396.  
  397. long    dopopup(register PopUp *);
  398.  
  399. /* Pull-down menus  and MenuBars */
  400.  
  401. typedef    Menu PullDown;
  402.  
  403. typedef struct menubar {
  404.     long        xorg, yorg;             /* origin of window             */
  405.     long        xmin, ymin, xmax, ymax; /* screen coordinates           */
  406.     long        count;                  /* number of pulldown menus     */
  407.     short       locate;                 /* locate highlight (# of pd)   */
  408.     short     invisible;        /* the menu bar is not visible     */
  409.     short    enable;            /* the menu bar is enables    */
  410.     PullDown    **pds;                  /* pulldown menus               */
  411. } MenuBar;
  412.  
  413. PullDown        *newpd(MenuBar *, char *);
  414. PullDown        *createmenu(MenuBar *, char **, long, long);
  415.  
  416. void    freepd(register PullDown *);
  417. void    initpd();
  418. #ifdef __cplusplus
  419. void    loadpd(...);
  420. #else
  421. void    loadpd();
  422. #endif
  423. void    deactivatepdentry(PullDown *, char *);
  424. void    activatepdentry(PullDown *, char *);
  425. void    disablepdentry(PullDown *, char *);
  426. void    enablepdentry(PullDown *, char *);
  427. void    disablepd(PullDown *);
  428. void    enablepd(PullDown *);
  429. void    changepdtitle(PullDown *, char *);
  430. void    addtopd(PullDown *, MenuItem *);
  431. void    removefrompd(PullDown *, MenuItem *);
  432.  
  433. short    getenablepd(PullDown *);
  434. short    changepd(PullDown *, char *, char *);
  435. short    valuepdentry(PullDown *, char *);
  436.  
  437. MenuItem        *getpdentry(PullDown *, char *);
  438. MenuItem    *newmenuitem();
  439.  
  440. MenuBar        *newmenubar();
  441.  
  442. void    loadmenubar(MenuBar *, long, PullDown **);
  443. void    removefrommenubar(MenuBar *, PullDown *);
  444. void    movemenubar(MenuBar *);
  445. void    highlightmb(MenuBar *, long);
  446. void    unhighlightmb(MenuBar *);
  447. void    makevisiblemb(MenuBar *);
  448. void    makeinvisiblemb(MenuBar *);
  449. void    enablemb(MenuBar *);
  450. void    disablemb(MenuBar *);
  451. void    drawmenubar(MenuBar *);
  452. void    drawmenubarnow(MenuBar *);
  453.  
  454. long    dopdbut(register PullDown *, long);
  455. long    dopulldown(MenuBar *);
  456. long    inmenubar(MenuBar *, long, long);
  457.  
  458. short    gethighlightmb(MenuBar *);
  459. short    getvisiblemb(MenuBar *);
  460. short    getenablemb(MenuBar *);
  461. short    locatemenubar(MenuBar *, long, long);
  462.  
  463. /* Text Boxes */
  464.  
  465. #define LABELSTRLEN     50
  466. #define TBSTRLEN        200
  467. #define TEXTBOXHEIGHT   28
  468.  
  469. /* Define for the settbtype() and gettypein() flag */
  470. #define TYPEIN_STRING   0
  471. #define TYPEIN_INT      1
  472. #define TYPEIN_FILE     2
  473. #define TYPEIN_FLOAT    3
  474. #define TYPEIN_HEX      4
  475. #define TYPEIN_WHOLE    5
  476.  
  477. typedef struct {
  478.     long    xmin, xmax, ymin;
  479.     long     number;            /* the tb number--used internally */
  480.     char        str[TBSTRLEN+1];        /* contents of text box         */
  481.     char        label[LABELSTRLEN+1];   /* label to left of text box    */
  482.     long        tp1, tp2;               /* textpointers                 */
  483.     long        charWidth;              /* width of box in # of characters */
  484.     short       active;
  485.     short       enable;
  486.     short     invisible;        /* the text box is not visible     */
  487.     short       type;                   /* for type-checking            */
  488.     long        index;          /* index into leftmost visible character */
  489. } TextBox;
  490.  
  491. TextBox    *newtb(long, long, long);
  492. TextBox *getactivetb();
  493.  
  494. void    inittb();
  495. void    freetb(TextBox *);
  496. void    labeltb(TextBox *, char *);
  497. void    settbtype(TextBox *, long);
  498. void    movetb(TextBox *, long, long, long);
  499. void    activatetb(TextBox *);
  500. void    deactivatetb(TextBox *);
  501. void    enabletb(TextBox *);
  502. void    disabletb(TextBox *);
  503. void    makevisibletb(TextBox *);
  504. void    makeinvisibletb(TextBox *);
  505. void    cleartb(TextBox *);
  506. void    adjusttb(TextBox *, long);
  507. void    loadtb(TextBox *, char *);
  508. void    backspacetb(TextBox *);
  509. void    inserttbchar(TextBox *, char);
  510. void    drawtb(TextBox *);
  511. void    drawtbnow(TextBox *);
  512.  
  513. char    *gettbstr(TextBox *);
  514.  
  515. short    intb(TextBox *, long, long);
  516. short    handletb(TextBox *, long, long, long, long);
  517. short    findtp(TextBox *, long);
  518. short    getenabletb(TextBox *);
  519. short   getvisibletb(TextBox *);
  520.  
  521. int     tilde(char *, char *);
  522.  
  523. /* Vertical Sliders */
  524.  
  525. typedef    Slider VSlider;
  526.  
  527. VSlider *newvs(long, long, long, long, long);
  528.  
  529. void     movevs(VSlider *, long, long, long);
  530. void    setarrowdelta(VSlider *, long);
  531. void    freevs(VSlider *);
  532. void    disablevs(VSlider *);
  533. void    enablevs(VSlider *);
  534. void    highlightvs(VSlider *, short);
  535. void    unhighlightvs(VSlider *);
  536. void    selectvs(VSlider *, short);
  537. void    unselectvs(VSlider *);
  538. void    makevisiblevs(VSlider *);
  539. void    makeinvisiblevs(VSlider *);
  540. void    pressvsarrow(VSlider *, short);
  541. void    setvshalf(VSlider *, long);
  542. void    setvscenter(VSlider *, long);
  543. void    setvsval(VSlider *, float);
  544. void    movevsval(VSlider *, float);
  545. void    resetvs(VSlider *);
  546. void    drawvs(VSlider *);
  547. void    drawvsnow(VSlider *);
  548. void    drawvsarrows(VSlider *);
  549.  
  550. short   locatevs(VSlider *, long, long);
  551. short   getenablevs(VSlider *);
  552. short   gethighlightvs(VSlider *);
  553. short   getselectvs(VSlider *);
  554. short   getenablevs(VSlider *);
  555. short    getvisiblevs(VSlider *);
  556. short   invs(VSlider *, long, long);
  557. short   handlevs(VSlider *, long, long);
  558.  
  559.  
  560. long    getvstrough(VSlider *);
  561.  
  562. float   getvsval(VSlider *);
  563.  
  564. /* Text Lists */
  565.  
  566. #define TEXTLISTFONT            5601
  567.  
  568. typedef struct {
  569.     long        xmin, xmax, ymin, ymax;
  570.     long        listheight;         /* in lines of text */
  571.     char        **strs;            /* text    */
  572.     long        top;            /* index into strs */
  573.     long        count;          /* total number of strings */
  574.     long        selecteditem;        /* index into selecteditem or -1 */
  575.     long        locateditem;        /* index into locateditem or -1 */
  576.     short     invisible;        /* the text list is not visible    */
  577.     VSlider     *vs;            /* the associated slider if one */
  578. } TextList;
  579.  
  580. short   selectedvs(VSlider *, TextList *, long, long, long);
  581.  
  582. TextList *newtl(long, long, long, long);
  583.  
  584. void    freetl(TextList *);
  585. void     movetl(TextList *, long, long, long, long);
  586. void    inittl();
  587. void    resettl(TextList *);
  588. void    unselecttl(TextList *);
  589. void    selecttlitem(TextList *, long);
  590. void    highlighttl(TextList *, long);
  591. void    unhighlighttl(TextList *);
  592. void    makevisibletl(TextList *);
  593. void    makeinvisibletl(TextList *);
  594. void    settltop(TextList *, long);
  595. void    settlstrings(TextList *, char **);
  596. void    adjusttop(TextList *, float);
  597. void    drawtl(TextList *);
  598. void    drawtlnow(TextList *);
  599. void    settlstrslinkhandle(char **, TextList *);
  600. void    adjustslider(TextList *, VSlider *);
  601.  
  602. short    getselectedtlitem(TextList *);
  603. short    gethighlighttl(TextList *);
  604. short    getvisibletl(TextList *);
  605. short    getitemvisibletl(TextList *, long);
  606. short    locatetl(TextList *, long, long);
  607. short    intl(TextList *, long, long);
  608. short    handletl(TextList *, long, long);
  609. short    selectedtl(TextList *, long, long, long);
  610.  
  611. long    gettextlistheight(long);
  612. long    gettlheightcount(long, long);
  613.  
  614. char    *selectedstring(TextList *);
  615.  
  616. /* Valuators */
  617.  
  618. #define VALUATORWIDTH   22
  619.  
  620. typedef    Slider Valuator;
  621.  
  622. Valuator *newval(long, long, long, long, long, short);
  623.  
  624. void     moveval(Valuator *, long, long, long);
  625. void    setvalarrowdelta(Valuator *, long);
  626. void    freeval(Valuator *);
  627. void    disableval(Valuator *);
  628. void    enableval(Valuator *);
  629. void    highlightval(Valuator *, short);
  630. void    unhighlightval(Valuator *);
  631. void    selectval(Valuator *, short);
  632. void    unselectval(Valuator *);
  633. void    makevisibleval(Valuator *);
  634. void    makeinvisibleval(Valuator *);
  635. void    pressvalarrow(Valuator *, short);
  636. void    setvalhalf(Valuator *, long);
  637. void    setvalcenter(Valuator *, long);
  638. void    setvalval(Valuator *, float);
  639. void    movevalval(Valuator *, float);
  640. void    resetval(Valuator *);
  641. void    drawval(Valuator *);
  642. void    drawvalnow(Valuator *);
  643. void    drawvalarrows(Valuator *);
  644.  
  645. short    getarrowsval(Valuator *);
  646. short    getenableval(Valuator *);
  647. short    gethighlightval(Valuator *);
  648. short    getselectval(Valuator *);
  649. short    getvisibleval(Valuator *);
  650. short    locateval(Valuator *, long, long);
  651. short    inval(Valuator *, long, long);
  652. short    handleval(Valuator *, long, long);
  653. short    selectedval(Valuator *, long, long, long);
  654.  
  655. float    getvalval(Valuator *);
  656.  
  657. /* Misc.    */
  658. void    backgrounddraw(long, long, long, long);
  659. void    backgroundclear();
  660. void    windowborderdraw();
  661. void    initui();
  662. void    uiokdraw();
  663. void    uinodraw();
  664. void    defglfont(char *, long, long);
  665. void    unlocateall();
  666.  
  667. short    uiswapbuffers();
  668.  
  669. void uiWhite();
  670. void uiVyLtGray();
  671. void uiBlack();
  672.  
  673. #ifdef NOTDEF
  674. typedef struct {
  675.     short    type;
  676.     short       active;
  677.     short       enable;
  678.     short     invisible;
  679.     short    select;            /* selected or not */
  680.     long        xmin, ymin, xmax, ymax;
  681.     widget_t    *(*createme)();
  682.     void    (*deleteme)();
  683.     void    (*drawme)();
  684.     long    (*editme)();
  685.     void    (*inme)();
  686.     void    (*loadme)();
  687.     short    (*locateme)();
  688.     void    (*positionme)();
  689. } Widget;
  690. #endif
  691. #ifdef __cplusplus
  692. }
  693. #endif
  694.  
  695. #endif    /* !__SHOWCASEUI_H__ */
  696.